#include <stdio.h>
#include <string.h>
#include "engineer.h"
#include "worker.h"
#include "engineer_imp.h"

void Engineer_VFuncInit(Engineer_Func *vfunc) {
    Worker_VFuncInit((Worker_Func*)vfunc);
}

#define PARAM_LIST      PARAM_LIST_2
#define TYPE_PARAM_LIST C_TYPE_PARAM_LIST_2(const char*, int)
BASE_FUNC_DEFINE(Engineer, Worker, OOP);
#undef TYPE_PARAM_LIST
#undef PARAM_LIST

void Engineer_Construct(ObjectPtr obj, const char* name, int age) {
    OOP_ASSERT(is_instance_of(obj, ClassID_Engineer));
    Worker_Construct(obj, name, age);
    Worker_SetJob(obj, "Engineer", 10000);
}

void Engineer_Destruct(ObjectPtr obj) {
    OOP_ASSERT(is_instance_of(obj, ClassID_Engineer));
    Worker_Destruct(obj);
}
